from django.db import models


class Admin(models.Model):
    """管理员表"""
    username = models.CharField(verbose_name='用户名', max_length=32)
    password = models.CharField(verbose_name='密码', max_length=64)

    def __str__(self):
        return self.username


class Department(models.Model):
    """部门表"""
    title = models.CharField(verbose_name='部门', max_length=32)

    def __str__(self):
        return self.title


class UserInfo(models.Model):
    '''员工表'''
    # 整型
    # id=models.IntegerField(verbose_name='ID', primary_key=True)
    # Bigint类型,自增
    # id = models.BigAutoField(verbose_name='ID', primary_key=True)
    # int类型
    # id = models.AutoField(verbose_name='ID', primary_key=True)
    name = models.CharField(verbose_name='姓名', max_length=16, )
    password = models.CharField(verbose_name='密码', max_length=64)
    age = models.IntegerField(verbose_name='年龄')  # 整形不用加长度
    account = models.DecimalField(verbose_name='账户余额', max_digits=10, decimal_places=2,
                                  default=0)  # 长度是10，小数位是2，如果新来一个默认为0
    # create_time = models.DateTimeField(verbose_name='入职时间')
    create_time = models.DateField(verbose_name='入职时间')
    # 没有约束
    # depart_id=models.BigIntegerField(verbose_name='部门id')
    # 有约束
    # to表示要与哪张表关联；to_field哪一列关联
    # django自动写的depart，生成数据列depart_id
    # 如果部门表——删除
    # ——> 级联删除
    # depart = models.ForeignKey(to='Department', to_field='id', on_delete=models.CASCADE)
    # ——> 置空
    depart = models.ForeignKey(verbose_name='部门', to='Department', to_field='id', null=True, on_delete=models.CASCADE)
    # 在django中做的约束
    gender_choices = (
        (1, '男'),
        (2, '女')
    )
    gender = models.SmallIntegerField(verbose_name='性别', choices=gender_choices)


class PrettyMum(models.Model):
    """靓号表"""
    mobile = models.CharField(verbose_name='手机号', max_length=11)
    # 想要允许为空    blank=True, null=True
    price = models.IntegerField(verbose_name='价格', default=0)
    level_choices = ((1, '一级'), (2, '二级'), (3, '三级'), (4, '四级'))
    level = models.SmallIntegerField(verbose_name='级别', choices=level_choices, default=1)
    status_choices = ((1, '未占用'), (2, '已占用'))
    status = models.SmallIntegerField(verbose_name='状态', choices=status_choices, default=2)


class Task(models.Model):
    """任务表"""
    level_choices = ((1, '紧急'), (2, '重要'), (3, '一般'))
    level = models.SmallIntegerField(verbose_name='级别', choices=level_choices, default=1)
    title = models.CharField(verbose_name='标题', max_length=64)
    detail = models.TextField(verbose_name='详情信息')
    user = models.ForeignKey(verbose_name='负责人', to='Admin', on_delete=models.CASCADE)


class Order(models.Model):
    """工单表"""
    oid = models.CharField(verbose_name='订单号', max_length=64)
    title = models.CharField(verbose_name='名称', max_length=64)
    price = models.IntegerField(verbose_name='价格')
    status_choices = ((1, '待支付'), (2, '已支付'))
    status = models.SmallIntegerField(verbose_name='状态', choices=status_choices, default=1)
    admin = models.ForeignKey(verbose_name='管理员', to='Admin', on_delete=models.CASCADE)
